//引入浏览器相关的模块的类
import { BrowserModule } from '@angular/platform-browser';
//引入核心模块 里面的 NgModule 接口（interface）就是一个函数
import { NgModule } from '@angular/core';
//导入FormsModule 模块
import { FormsModule } from '@angular/forms';
//导入HttpModule  模块  http请求模块
//1.HttpModule 类
import { HttpModule } from '@angular/http'

//@angular/router 路由相关模块
//1.RouterModule 路由模块  类
//2.Route 类
import {RouterModule , Route} from '@angular/router'
//配置路由
//appRoutes 是一个数组   里面的元素都是Route类型的
let appRoutes:Route[] = [
  {
    path:'list',
    component:ListComponent
  },
  {
    path:'tian',
    component:TianComponent
  },
  {
    path:'edit/:id',
    component:EditComponent
  },
  {
    path: '',
    redirectTo: 'list',
    pathMatch: 'full'
  },

]

//导入自定义的跟组件
import { AppComponent } from './app.component';
import { TianComponent } from './tian/tian.component';
import { ListComponent } from './list/list.component';
import { EditComponent } from './edit/edit.component';

//@NgModule 装饰器
//修饰的是AppModule
@NgModule({
  //1.declarations声明：指明当前模块内定义了那些内容
  //内容可以包括：组件、指令、管道（过滤器）
  //只包含了跟组件
  declarations: [
    AppComponent,
    TianComponent,
    ListComponent,
    EditComponent
  ],
  //2.导入，指明当前模块使用到的其他的模块
  //只导入浏览器相关的模块
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(appRoutes)
  ],
  //3.providers提供者，指明当前模块使用的服务
  providers: [],
  //4.启动：指明跟模块启动的跟组件
  //只有在根模块才需要指定bootstrap
  bootstrap: [AppComponent]
})
export class AppModule { }
